标签
note
字数
426 字
阅读时间
2 分钟
Vue 请求是在 Created 还是 Mounted
首先明确一点:请求是 异步 的
两个生命周期created:data 属性,methods 属性,watch 监听等都初始化好了,也就是可以使用了。mounted:已经把 内存 中编译好的模板替换到页面中,也就是视图层已渲染成最新的,vue 实例完全创建完毕。可以操作 DOM,但不保证所有子组件都挂载了
如果你希望等到整个视图都渲染完毕,可以在 mounted 内部使用 vm.$nextTick
在 created 生命周期里 data 才生成,而请求返回的数据需要挂载 data 上,所以 created 中是可以初始化请求的, 但是 created 中 DOM 元素并没有渲染完全
常规生命周期:
js
beforeCreate // 这时候data,methods函数未挂载
created // data已挂载、methods函数已挂载;然而,挂载阶段还没开始,且 `$el` property 目前尚不可用
beforeMount // 相关的render函数首次被调用,dom未挂载
mounted // dom已渲染挂载完成
beforeUpdate
updated
beforeDestroy
destroyed请求是异步的,所以不会堵塞页面渲染的主线程
如果我们的请求不需要获取/借助/依赖/改变 DOM,这时请求可以放在 Created;反之则可以放在 Mounted 里
使用全局的请求拦截里面进行 loading 处理请求加载数据闪屏,也可用 mounted
参考
vue在created钩子函数请求异步数据,在mounted钩子获取不到?
Vue请求是在Created还是Mounted?